<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/displaytag.tld" prefix="display"%>
<%@ page import="java.util.Collection"%>
<%@ page import="java.util.List"%>


<html>
<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/popUP.js"%>"></script>

<link href="<%=request.getContextPath() + "/css/bloques.css"%>"
	rel="stylesheet" type="text/css" />
<script src="<%=request.getContextPath()%>/js/dateValidation.js"
	type="text/javascript"></script>
<script type="text/javascript"
	src="<%=request.getContextPath() + "/js/jquery-1.8.0.js"%>"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery-ui-1.10.3.custom.min.js"%>"></script>
<script type="text/javascript"
	src="<%=request.getContextPath()
					+ "/js/jquery.ui.datepicker-es.js"%>"></script>
<link rel="stylesheet"
	href="<%=request.getContextPath()
					+ "/css/ui-lightness/jquery-ui-1.10.3.custom.css"%>" />
<script type="text/javascript">
$( document ).ready(function() {
	$.datepicker.setDefaults({
		  showOn: "button",
		  buttonImageOnly: true,
		  buttonImage: "<%=request.getContextPath() + "/images/Calendar.png"%>",
		  buttonText : "Calendario"
		});
		$(function() {
			$("#valor").datepicker({
				changeMonth : true,
				changeYear : true
			});
		});
		$(function() {
			$("#valor2").datepicker({
				changeMonth : true,
				changeYear : true
			});
		});
	
		
		// Se hace que el ID del atributo a eliminar sea el valor "codigos" (es decir la posicion a eliminar).
		// Se usa un onclick para la clase deleteBtn, se obtiene el valor del id del boton al que se le hizo click,
		// y luego se asigna este valor al parametro del request "codigos", que es el que indica la posicion de filtros
		// a borrar. FSR.
		$(".deleteBtn").click(function(){
			var chosen = confirm('¿Está seguro que desea eliminar el filtro?');
			if(chosen){
				var id = this.id;
				// como se le concateno 'delete' al id(por evitar posible id repetido..), 
				// se remueve (solo se necesita el numero).
				id = id.replace('delete','');
				var action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
				$('input[name=accion]').val('1');
				$('input[name=codigos]').val(id);	// el numero o posicion del filtro a eliminar.
				$("#frmseleccion").attr('target', '_self');
				$("#frmseleccion").attr('action', action);
				$("#frmseleccion").submit();	
			}
			return false;
		});
	
	if($("#filter").val() === "7"){
		//habilita el datepicker cuando el filtro es 7 (entre);
		$("#valor2").datepicker('enable');
    	document.frmseleccion.valor2.disabled = false; 
    }else{
    	//deshabilita el datepicker cuando el filtro no es 7 (entre);
    	$("#valor2").datepicker('disable');
      	document.frmseleccion.valor2.disabled = true; 
      	document.frmseleccion.valor2.value = "";
    }
});
</script>										

<SCRIPT type="text/javascript">
	$(function() {
		$("#selectall").click(function() {
			$('.benecase').attr('checked', this.checked);
		});
		$(".benecase").click(function() {
			if ($(".benecase").length == $(".benecase:checked").length) {
				$("#selectall").attr("checked", "checked");
			} else {
				$("#selectall").removeAttr("checked");
			}
		});
	});
</SCRIPT>
<SCRIPT type="text/javascript">
	$(function() {
		$("#selectAllBeneficio").click(function() {
			$('.selectedIdBeneficio').attr('checked', this.checked);
		});
		$(".selectedIdBeneficio").click(function() {
			if ($(".selectedIdBeneficio").length == $(".selectedIdBeneficio:checked").length) {
				$("#selectAllBeneficio").attr("checked", "checked");
			} else {
				$("#selectAllBeneficio").removeAttr("checked");
			}
		});
	});
</SCRIPT>

<script type="text/javascript">
  
// Script para seleccionar todas las opciones del beneficio
var checkflag = "false";
function check(tamano) {
	var nom = "";
    var i;
    if (checkflag == "false") {
    	for (i = 0; i < tamano; i++) {
        	nom = "atributo"+i;
        	document.forms['frmseleccion'].elements[nom].checked = true;
      	}
      	checkflag = "true";
      	return "Uncheck All"; 
    }else{
      	for (i = 0; i < tamano; i++){
        	nom = "atributo"+i;
        	document.forms['frmseleccion'].elements[nom].checked = false;
      	}
      	checkflag = "false";
      	return "Check All"; 
    }
}
  // Fin del Script
  
  // Script para seleccionar todas las opciones del beneficiario
var checkflagbene = "false";
function checkbene(tamano) {
	var nom = "";
    var i;
    if (checkflagbene == "false"){
    	for (i = 0; i < tamano; i++) {
        	nom = "atrbeneficiario"+i;
        	document.forms['frmseleccion'].elements[nom].checked = true;
      	}
      	checkflagbene = "true";
      	return "Uncheck All"; 
    }else{
      	for (i = 0; i < tamano; i++) {
        	nom = "atrbeneficiario"+i;
        	document.forms['frmseleccion'].elements[nom].checked = false;
      	}
      	checkflagbene = "false";
      	return "Check All"; 
   	}
}
  // Fin del Script
  
  
function habilita(){
	if($("#filter").val() === "7"){
		//habilita el datepicker cuando el filtro es 7 (entre);
		$("#valor2").datepicker('enable');
    	document.frmseleccion.valor2.disabled = false; 
    }else{
    	//deshabilita el datepicker cuando el filtro no es 7 (entre);
    	$("#valor2").datepicker('disable');
      	document.frmseleccion.valor2.disabled = true; 
      	document.frmseleccion.valor2.value = "";
    }
}  

function verificar(){   
	document.frmseleccion.action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
    document.frmseleccion.accion.value ='1';
    document.frmseleccion.target = "_self";
    document.frmseleccion.submit();
}
  
function verificarLista(){	
	if(document.frmseleccion.filter.value == "7"){
    	if(document.frmseleccion.descVflex.value == "" || document.frmseleccion.valor2.value == ""){
        	alert("Por favor ingrese tanto el valor1 como el valor2");
      	}else{
        	document.frmseleccion.action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
        	document.frmseleccion.accion.value ='2';
        	document.frmseleccion.target = "_self";
        	document.frmseleccion.submit();
      	}
    }else{
      	if(document.frmseleccion.descVflex.value == ""){
        	alert("Por favor ingrese un valor");
      	}else{
        	document.frmseleccion.action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
        	document.frmseleccion.accion.value ='2';
        	document.frmseleccion.target = "_self";
        	document.frmseleccion.submit();
      	} 
    }
}
  
function verificar1(){
	//verificar fechas. Si existe el elemento #valor es por que hay seleccionado un atributo tipo fecha.
	if($("#valor").val()){
		var fValor = isDate($("#valor").val());
		if(!fValor){
			alert('Fecha valor1 no valida.');
			return false;
		}
		if($("#filter").val() === "7"){
			var fValor2 = isDate($("#valor2").val());
			if(!fValor2){
				alert('Fecha valor2 no valida.');
				return false;
			}else{
				if( $.datepicker.parseDate("dd/mm/yy", $("#valor").val()) > $.datepicker.parseDate("dd/mm/yy", $("#valor2").val())){
					alert('Fecha inicial no puede ser mayor que la fecha final.');
					return false;
				}
			}
		}else{
			$("#valor2").val("");
			$("#valor2").attr('disabled', true);
		}
		
	}
	if(document.frmseleccion.filter.value == "7"){
    	if(document.frmseleccion.valor.value == "" || document.frmseleccion.valor2.value == ""){
        	alert("Por favor ingrese tanto el valor1 como el valor2");
      	}else{
        	document.frmseleccion.action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
        	document.frmseleccion.accion.value ='2';
        	document.frmseleccion.target = "_self";
        	document.frmseleccion.submit();
      	}
    }else{
      	if(document.frmseleccion.valor.value == ""){
        	alert("Por favor ingrese un valor");
      	}else{
        	document.frmseleccion.action = '<%=request.getContextPath()
					+ "/Reportes/Detallados/Seleccion.do"%>';
        	document.frmseleccion.accion.value ='2';
        	document.frmseleccion.target = "_self";
        	document.frmseleccion.submit();
      	}
    }
}
  
function Generar(){
	$("#frmseleccion").attr('target', '_blank');
	$("#frmseleccion").submit();	
  }
  
  
function validarOtros(tamano){    
	if($(".benecase:checked").length < 1) {
    	alert('Por favor seleccione al menos un atributo.');
    }else{
      	document.frmseleccion.target = "blank";
      	document.frmseleccion.submit();
    }
}
  
</script>

<script src="<%=request.getContextPath()%>/js/displaytag.js"
	type="text/javascript"></script>

<form name="frmseleccion" id="frmseleccion" class="frmseleccion"
	action="<%=request.getContextPath()
					+ "/Reportes/Detallados/GenerarSelect.do"%>"
	method="post">
	<html:hidden property="codigos" value=""></html:hidden>
	<p align="center" class="titulosenblanco">Reporte&nbsp;Detallado&nbsp;Beneficios&nbsp;Otorgados</p>
	<div align="center">
		<table class="tablaGenericaWidth10">
			<tr>
				<td align="center" class="celdatabla">Parametro</td>
				<td align="center" class="celdatabla">Filtro</td>
				<td align="center" class="celdatabla">Valor1</td>
				<td align="center" class="celdatabla">Valor2</td>
			</tr>
			<tr>
				<td>
					<%
						Object codigoatri = (Object) session.getAttribute("codigo");
						if (codigoatri == null)
							codigoatri = "nulo";
					%> <logic:iterate id="atributos" name="lbeneficiarios" length="1"
						type="co.gov.medellin.ssti.sub.model.vo.RepAtributoVO">
						<div align="center">
							<html:select onchange="verificar()" name="atributos"
								property="codigo" title="atributos" styleClass="form"
								value="<%=(String) codigoatri%>">
								<option value="nulo">Seleccione un atributo</option>
								<html:options name="listaatributos" labelName="codigo"
									labelProperty="etiqueta" property="codigo"
									collection="listaatributos" />
								<html:options name="lbeneficiarios" labelName="nombre"
									labelProperty="etiqueta" property="nombre"
									collection="lbeneficiarios" />
							</html:select>
						</div>
					</logic:iterate>
				</td>
				<%
					Object obTipodato = (Object) session.getAttribute("tipodato");
					String strTipoDato = "";
					if (obTipodato != null) {
						strTipoDato = (String) session.getAttribute("tipodato");
					} else {
						strTipoDato = "T";
					}

					if (strTipoDato.equals("A") || strTipoDato.equals("L")) {
				%>
				<td align="center"><select name="filter" id="filter" class="form">
						<option value="3">IGUAL</option>
						<option value="4">DIFERENTE</option>
						<option value="8">PARECIDO</option>
				</select></td>
				<%
					} else {
				%>
				<td align="center"><select name="filter" id="filter" onchange="habilita()"
					class="form">
						<option value="1">MAYOR O IGUAL</option>
						<option value="2">MENOR O IGUAL</option>
						<option value="3">IGUAL</option>
						<option value="4">DIFERENTE</option>
						<option value="5">MENOR</option>
						<option value="6">MAYOR</option>
						<option value="7">ENTRE</option>
				</select></td>
				<%
					}
				%>
				<td align="center"><logic:notPresent name="listavfl">
						<%
							if (!strTipoDato.equals("F")) {
						%>
						<input class="form" type="text" name="valor" />
						<%
							} else {
						%>
						<input type="TEXT" class="form" name="valor" id="valor" />
						<%
							}
						%>
					</logic:notPresent> <logic:present name="listavfl">
						<logic:iterate id="vfl" name="listavfl" length="1"
							type="co.gov.medellin.ssti.sub.model.vo.VflexVO">
							<html:select name="vfl" property="descVflex" title="vfl"
								styleClass="form">
								<html:options name="listavfl" labelName="valor"
									labelProperty="descVflex" property="nombreVflex"
									collection="listavfl" />
							</html:select>
						</logic:iterate>
					</logic:present></td>
				<td align="center">
					<%
						if (!strTipoDato.equals("F")) {
					%> <input disabled="disabled" class="form" type="text"
					name="valor2" /> <%
 						} else {
 %> 					<input type="TEXT" class="form" name="valor2" id="valor2" /> 
						<%
 						}
 %>

				</td>
			</tr>
			<tr>
				<td align="center" colspan="4">
					<P>&nbsp;</P>
					<P>
						<logic:present name="listavfl">
							<input type="button" value="Agregar Filtro"
								onclick="verificarLista()" />
						</logic:present>
						<logic:notPresent name="listavfl">
							<input type="button" value="Agregar Filtro"
								onclick="verificar1()" />
						</logic:notPresent>
					</P>
				</td>
			</tr>
		</table>
	</div>
	<div align="center">
		<logic:present name="ListaFiltrado">
			<table class="tablaGenericaWidth50">

				<%
					//String strnombre = "";
						//List lbeneficiario = (List)request.getAttribute("ListaBeneficiarios");
						//int tamano = lbeneficiario.size();
						//int i = 0;
				%>

				<tr>
					<td><display:table name="sessionScope.ListaFiltrado"
							id="lfiltro" cellpadding="3" cellspacing="1" style="width:100%"
							class="bordestable">
							<display:column headerClass="headerTable" title="Atributo"
								class="Numero" sortable="true">
								<div align="center">
									<bean:write name="lfiltro" property="campo" />
								</div>
							</display:column>
							<display:column headerClass="headerTable" title="Filtro"
								class="Numero" sortable="true">
								<div align="center">
									<bean:write name="lfiltro" property="filtro" />
								</div>
							</display:column>
							<display:column headerClass="headerTable" title="Valor1"
								class="Numero" sortable="true">
								<div align="center">
									<bean:write name="lfiltro" property="etiquetaValor" />
								</div>
							</display:column>
							<display:column headerClass="headerTable" title="Valor2"
								class="Numero" sortable="true">
								<div align="center">
									<bean:write name="lfiltro" property="etiquetaValor2" />
								</div>
							</display:column>
							<display:column headerClass="headerTable" title="Eliminar"
								class="Numero" sortable="true">
								<div align="center">									
									<bean:define id="codigos" name="lfiltro" property="codigo" />									
									<html:image src='<%=request.getContextPath() + "/images/Delete.gif"%>' 
										styleId='<%= "delete" + lfiltro_rowNum.toString() %>'
										style="width: 16; height: 16; border: 0;" styleClass="deleteBtn" />

									<%
										String strgenerar = request.getParameter("generar");
													java.util.HashMap params = new java.util.HashMap();
													params.put("codigos", codigos);
													params.put("generar", strgenerar);
													pageContext.setAttribute("parametros", params);
									%>
									

								</div>
							</display:column>
						</display:table></td>
				</tr>
			</table>
		</logic:present>
		<P>________________________________________________________________________</P>
		<P class="titulosenblanco">Seleccione los campos que desea que
			aparezcan en el reporte</P>
		<P class="titulosenblanco">Atributos del beneficio</P>
	</div>

	<!-- <div align="center"> -->
	<%
		Collection atrBeneficios = (Collection) session
				.getAttribute("listaatributos");
		int ContBeneficios = 0;
		if (atrBeneficios != null)
			ContBeneficios = atrBeneficios.size();
		atrBeneficios = null;
		Collection atrBeneficiarios = (Collection) session
				.getAttribute("listabeneficiario");
		int ContBeneficiarios = atrBeneficiarios.size() + ContBeneficios;
		atrBeneficiarios = null;
	%>

	<script type="text/javascript">
      var atrBeneficiarios = new Array(<%=ContBeneficiarios%>); 
      var tamano = <%=ContBeneficiarios%>;
      var i = 0;
    </script>

	<div align="center">
		<logic:present name="listaatributos">
			<table class="tablaGenericaWidth40">

				<%
					String nombre = "";
						List lListaAtributos = (List) session
								.getAttribute("listaatributos");
						int tamano = lListaAtributos.size();
						int j = 0;
				%>
				<tr>
					<td align="right"><font class="celdatabla">Seleccionar
							Todos</font><input type="checkbox" name="SLT_ALL_BENEFICIO"
						value="Check All" id="selectAllBeneficio" /></td>
				</tr>
				<tr>
					<td>
						<display:table name="sessionScope.listaatributos"
							id="beneotot" cellpadding="3" cellspacing="1" style="width:100%"
							class="bordestable">
							<display:column headerClass="headerTable" title="Atributo"
								class="Numero" sortable="true" group="1">
								<div align="center">
									<bean:write name="beneotot" property="etiqueta" />
								</div>
							</display:column>
							<display:column headerClass="headerTable" title="Escoger"
								class="Numero">
								<div align="center">
									<% nombre = "atributo" + j; %>
									<input type="checkbox" name="<%=nombre%>" class="selectedIdBeneficio"
										value="<bean:write name="beneotot" property="codigo"/>" 
										<%= (request.getParameter(nombre) != null) ? "checked='checked'":"" %> />
									<% j++; %>
								</div>
								<script>
                    				atrBeneficiarios[i] = '<%=nombre%>';
                    				i++;
               					</script>
							</display:column>
						</display:table>
					</td>
				</tr>
			</table>
			<logic:present name="listabeneficiario">
				<P class="titulosenblanco">Atributos del beneficiario</P>
				<table class="tablaGenericaWidth40">

					<%
						String strnombre = "";
								List lListaBeneficiario = (List) session
										.getAttribute("listabeneficiario");
								int tamanoBene = lListaBeneficiario.size();
								int k = 0;
					%>
					<tr>
						<td align="right">
							<font class="celdatabla">Seleccionar Todos</font>
							<input type="checkbox" name="SLT_ALL" value="Check All"
								id="selectall" />
						</td>
					</tr>
					<tr>
						<td><display:table name="sessionScope.listabeneficiario"
								id="beneficiario" cellpadding="3" cellspacing="1"
								style="width:100%" class="bordestable">
								<display:column headerClass="headerTable" title="Atributo"
									class="Numero" sortable="true" group="1">
									<div align="center">
										<bean:write name="beneficiario" property="etiqueta" />
									</div>
								</display:column>

								<display:column headerClass="headerTable" title="Escoger"
									class="Numero">
									<div align="center">
										<%
											strnombre = "atrbeneficiario" + k;
										%>
				
										<input type="checkbox" class="benecase" name="<%=strnombre%>"
											value="<bean:write name="beneficiario" property="nombre"/>" 
											<%= (request.getParameter(strnombre) != null) ? "checked='checked'":"" %>/>
										<%
											k++;
										%>
									</div>
									<script type="text/javascript">
                      					atrBeneficiarios[i] = '<%=strnombre%>';
										i++;
									</script>
								</display:column>

							</display:table></td>
					</tr>
				</table>
			</logic:present>
			<input type="HIDDEN" name="accion" />
		</logic:present>
		<P>
			<input type="button" value="Generar" onclick="validarOtros(tamano)" />
			<%
				String valor = (String) request.getAttribute("codsub");
			%>
			<input type="HIDDEN" name="generar" id="generar" value="<%=valor%>" />
		</P>
	</div>
</form>

</html>
